package com.dragon.backstage.convert;

import com.dragon.backstage.domain.excel.UserLoginLogExportExcel;
import com.dragon.backstage.domain.param.userLoginLog.UserLoginLogParam;
import com.dragon.backstage.domain.vo.userLoginLog.UserLoginLogVo;
import com.dragon.interfaces.constant.UserLoginLogConstant;
import com.dragon.interfaces.domain.request.userLoginLog.UserLoginLogRequest;
import com.dragon.interfaces.entity.UserLoginLog;

/**
 * 用户登陆日志转换器
 *
 * @author dragon
 * @version 1.0
 * @date 2024/10/12 18:20
 */
public class UserLoginLogConvert {

    public static UserLoginLogRequest toUserLoginLogRequest(UserLoginLogParam userLoginLogParam) {
        return UserLoginLogRequest.builder()
            .pageNum(userLoginLogParam.getPageNum())
            .pageSize(userLoginLogParam.getPageSize())
            .account(userLoginLogParam.getAccount())
            .loginLocation(userLoginLogParam.getLoginLocation())
            .status(userLoginLogParam.getStatus())
            .loginStartTime(userLoginLogParam.getLoginStartTime())
            .loginEndTime(userLoginLogParam.getLoginEndTime())
            .build();
    }

    public static UserLoginLogVo toUserLoginLogVo(UserLoginLog userLoginLog) {
        return UserLoginLogVo.builder()
            .loginId(userLoginLog.getLoginId())
            .traceId(userLoginLog.getTraceId())
            .account(userLoginLog.getAccount())
            .loginIp(userLoginLog.getLoginIp())
            .loginLocation(userLoginLog.getLoginLocation())
            .browser(userLoginLog.getBrowser())
            .os(userLoginLog.getOs())
            .engine(userLoginLog.getEngine())
            .status(userLoginLog.getStatus())
            .msg(userLoginLog.getMsg())
            .loginTime(userLoginLog.getLoginTime())
            .build();
    }

    public static UserLoginLogExportExcel toUserLoginLogExportExcel(UserLoginLog userLoginLog) {
        return UserLoginLogExportExcel.builder()
            .loginId(userLoginLog.getLoginId())
            .traceId(userLoginLog.getTraceId())
            .account(userLoginLog.getAccount())
            .loginIp(userLoginLog.getLoginIp())
            .loginLocation(userLoginLog.getLoginLocation())
            .browser(userLoginLog.getBrowser())
            .os(userLoginLog.getOs())
            .engine(userLoginLog.getEngine())
            .statusDes(UserLoginLogConstant.STATUS_SUCCESS.equals(userLoginLog.getStatus()) ? "成功" : "失败")
            .msg(userLoginLog.getMsg())
            .loginTime(userLoginLog.getLoginTime())
            .build();
    }

}
